/*
* Author: Chris Seguin
*
* This software has been developed under the copyleft
* rules of the GNU General Public License. Please
* consult the GNU General Public License for more
* details about use and distribution of this software.
*/
package org.acm.seguin.pretty;
import org.acm.seguin.parser.JavaParserConstants;
import org.acm.seguin.parser.Node;
/**
* Consume a single line comment
*
*@author Chris Seguin
*@created October 14, 1999
*@date April 10, 1999
*/
public class PrintSpecialSingleLineComment extends PrintSpecial {
/**
* Determines if this print special can handle the current object
*
*@param spec Description of Parameter
*@return true if this one should process the input
*/
public boolean isAcceptable(SpecialTokenData spec) {
return (spec.getTokenType() == JavaParserConstants.SINGLE_LINE_COMMENT);
}
/**
* Processes the special token
*
*@param node the type of node this special is being processed for
*@param spec the special token data
*@return Description of the Returned Value
*/
public boolean process(Node node, SpecialTokenData spec) {
// Get the print data
PrintData printData = spec.getPrintData();
// Make sure we are indented
if (!printData.isLineIndented() &&
(spec.getSpecialToken().beginColumn > 2)) {
printData.indent();
}
if (spec.getSpecialToken().beginColumn < 2) {
printData.reset();
}
// Print the comment
printData.appendComment(spec.getTokenImage().trim(), PrintData.SINGLE_LINE_COMMENT);
return true;
}
}